package com.byzk.p2p.admin.base.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.byzk.p2p.admin.user.dto.User;


public class FrontRequestInterceptor implements HandlerInterceptor {
	
	/**
	 * 在请求处理之前执行,该方法主要用于准备资源数据的,然后可以把它们当做请求属性放到WebRequest中
	 */
	@Override
	public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {
		User user =  (User)request.getSession().getAttribute("frontUser");
		if(user==null){
			response.sendRedirect("/login");
			return false;
		}
		return true;
	}
	
	/**
	 * 该方法将在Controller执行之后，返回视图之前执行，ModelAndView表示请求Controller处理之后返回的Model对象，所以可以在 
     * 这个方法中修改ModelAndView的属性，从而达到改变返回的模型的效果。 
     * 
	 */
	@Override
	public void postHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		
	}
	
	/**
	 *  该方法将在整个请求完成之后，也就是说在视图渲染之后进行调用，主要用于进行一些资源的释放 
	 *  异常在此步骤统一做处理(处理规则见springmvc.xml)
	 */
	@Override
	public void afterCompletion(HttpServletRequest request,
			HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		
	}
	
	
}
